package com.cwh.taskcenter.domain.system.model;

import cn.hutool.core.util.StrUtil;
import lombok.Data;

import java.util.List;
import java.util.Map;

/**
 * @author cwh
 */
@Data
public class SmsTemplate {
    /**
     * 自增编号
     */
    private Long id;

    // ========= 模板相关字段 =========

    /**
     * 短信类型
     *
     * 枚举 {@link SmsTemplateTypeEnum}
     */
    private Integer type;
    /**
     * 启用状态
     *
     * 枚举 {@link StatusEnum}
     */
    private Integer status;
    /**
     * 模板编码，保证唯一
     */
    private String code;
    /**
     * 模板名称
     */
    private String name;
    /**
     * 模板内容
     *
     * 内容的参数，使用 {} 包括，例如说 {name}
     */
    private String content;
    /**
     * 参数数组(自动根据内容生成)
     */
    private List<String> params;
    /**
     * 备注
     */
    private String remark;
    /**
     * 短信 API 的模板编号
     */
    private String apiTemplateId;

    // ========= 渠道相关字段 =========

    /**
     * 短信渠道编号
     */
    private Long channelId;
    /**
     * 短信渠道编码
     *
     */
    private String channelCode;
    
    public String formatContent(Map<String, Object> params) {
        // 实现模板渲染逻辑
        return StrUtil.format(content, params);
    }
}